perm filename COMT.PAL[AL,HE] blob
sn#207461 filedate 1976-03-22 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00012 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 CONDITION MONITORS: CMMAK, CMENB, CMSKED, CMTRIG
C00004 00003 ARITHMETIC: VMAKE
C00006 00004 GRAPH STRUCTURE: MCLC, MEXP, ENDCLC
C00009 00005 GRAPH STRUCTURE: MCHG, GTNEW, GTOLD
C00010 00006 GLOBAL DECLARATIONS: GLBLNK
C00011 00007 FORCE MONITORS: MAKFORCE, GETFORCE, DESFORCE
C00012 00008 SSBRTN
C00013 00009 FORCE MONITORING: MAKFORCE, GETFORCE, DESFORCE, MOVE
C00019 00010 PARALLEL CODE: XSPROUT, WAITE, SIGNAL
C00020 00011 PROG, TINVRT, TTMUL
C00021 00012 ALAID
C00022 ENDMK
C⊗;
;CONDITION MONITORS: CMMAK, CMENB, CMSKED, CMTRIG
COMMENT ⊗
XPRINT
L45 ;Say hello
XCMMAK
20 ;CM at 20
L30 ;Code at L30 for c-m
XMVAR ;
10 ;X
12 ;y
0
XPUSH ;X ← L41
L41
XCHNGE
10
XPUSH ;Y ← L41.5 (= 0)
L41.5
XCHNGE
12
XCMENB ;Enable checker
20
L32: XGTVAL ;X ← X - 1
10 ;
XCOPY ;
0
XPRNTS ;Say what X is
XPUSH ;
L43 ;Push 1
XSSUB ;Subtract
XCHNGE ;
10 ;
XGTVAL ;
12 ;Y=0?
XJUMPC ;
2 ;
L32 ;If so, loop
XCMDEST ;else get rid of checker
20 ;
0
XTERMINATE;and go away
L30: XCMSKED ;Checker body
XPRINT ;Say "."
L46 ;
XGTVAL ;X≤0?
10 ;
XJUMPC ;
7 ;if GT then jump
L30 ;
XCMTRIG ;Yes. trigger
XPRINT
L44 ;Say "zero"
XPUSH ;
L41 ;SET Y ← 10.0
XCHNGE ;
12 ;
XJUMP ;
L30 ;
;data area
L41: 41040 ;10.0
0
L41.5: 0 ;0.0
0
L42: ASCIE </
DECREMENTING/>
L43: 40200 ;1.0
0
L44: ASCIE </
ZERO/>
L45: ASCIE </
TEST OF CONDITION CHECKERS
/>
L46: ASCIE </./>
;⊗
;ARITHMETIC: VMAKE
COMMENT ⊗
L1: XMVAR
10 ;X
12 ;Y
14 ;Z
16 ;W
0
XPUSH ;X ← L103
L103
XCHNGE
10
XPUSH ;Y ← L105
L105
XCHNGE
12
XPUSH ;Z ← L107
L107
XCHNGE
14
XGTVAL ;W ← X . Y . Z
10
XGTVAL
12
XGTVAL
14
L2: XVMAKE
XCHNGE
16
XPRINT ;
A1 ;
XVARPRN ;
16 ;W
XTERMINATE
L103: ;VECTOR(44.5, 44.5, 44.5, 2)
41462
0
41462
0
41462
0
40400
0
L105: ;VECTOR(10, 10, 10, 1)
41040
0
41040
0
41040
0
40200
0
L107: ;VECTOR(20, 20, 20, 1)
41240
0
41240
0
41240
0
40200
0
A1: ASCIE /W = /
;⊗
;GRAPH STRUCTURE: MCLC, MEXP, ENDCLC
COMMENT ⊗
XMVAR
20 ;X
22 ;Y
24 ;Z
26 ;W
0 ;
XPUSH ;X ← 1
L1 ;
XCHNGE ;
20 ;
XPUSH ;Y ← 1
L1 ;
XCHNGE ;
22 ;
XMEXP ;EXPR(X + Y)
20 ;neededs
22 ;
0 ;
L10 ;code
30 ;offset
XMCLC ;
30 ;Expr
24 ;Z <= EXPR
XMCLC ;
30 ;Expr
26 ;W <= EXPR
XMEXP ;W <= Z
24 ;neededs
0 ;
L11 ;code
34 ;offset
XMCLC ;
34 ;Expr
26 ;W
XGTVAL ;Print W
26 ;
XPRNTS ;
XKVAR ;
20 ;
0 ;
XDCLC ;
34 ;
26 ;W
XKVAR ;
22 ;
24 ;
26 ;
0 ;
XTERMINATE
L10: XGTVAL ;X
20 ;
XGTVAL ;Y
22 ;
XSADD ;+
XENDCLC ;
L11: XGTVAL ;Z
24 ;
XENDCLC ;
L1: 40200 ;1
0
;⊗
;GRAPH STRUCTURE: MCHG, GTNEW, GTOLD
COMMENT ⊗
XMVAR
20 ;X
22 ;Y
24 ;Z
26 ;W
0 ;
XPUSH ;X ← 1
L1 ;
XCHNGE ;
20 ;
XPUSH ;Y ← 1
L1 ;
XCHNGE ;
22 ;
XMCHG ;WHEN CHANGE X DO [Z ← NEW-OLD; PRINT Z]
20 ;
L10 ;code
XMCHG ;WHEN CHANGE Z DO [PRINT Z]
24 ;
L11 ;code
XPUSH ;X ← 10
L2 ;
XCHNGE ;
20 ;
XTERMINATE
L10: XGTNEW ;
XGTOLD ;
XSSUB ;-
XCOPY ;
0
XPRNTS ;
XCHNGE ;
24 ;Z
XTERMINATE
L11: XGTVAL ;
24 ;Z
XPRNTS ;
XTERMINATE
L1: 40200 ;1
0
L2: 41040 ;=10
0
;⊗
;GLOBAL DECLARATIONS: GLBLNK
COMMENT ⊗
XMVAR ;
20 ;X
0 ;
XPUSH ;
L1 ;1.0
XCHNGE ;
20 ;X
XGLBLNK ;
24 ;Z
11111 ;
17777 ;
XGLBLNK ;
26 ;Z1
21111 ;
17777 ;
XGLBLNK ;
30 ;Z1
21111 ;
17777 ;
XGTVAL ;
20 ;X
XCHNGE ;
26 ;Z
XGTVAL ;
30 ;Z
XPRNTS ;
XKVAR ;
20 ;X
XBREAK ;
XTERMINATE
L1: 40200 ;1.0
0
⊗
;FORCE MONITORS: MAKFORCE, GETFORCE, DESFORCE
COMMENT ⊗
XPUSH ;
L1 ;vector
XPUSH ;
L1 ;vector
XMAKFORCE
20 ;F
1 ;yellow arm
XGETFORCE ;
20
XPRNTS ;
XBRACE ;
XDESFORCE ;
20 ;
XTERMINATE ;
L1: 40200 ;
0
40400 ;
0
40600 ;
0 ;
;⊗
;SSBRTN
COMMENT ⊗
XPUSH
L1 ;4.0
XSSBRTN
1 ;SQRT
XPRNTS ;
XTERMINATE
L1: 40600 ;
0 ;
;⊗
;FORCE MONITORING: MAKFORCE, GETFORCE, DESFORCE, MOVE
COMMENT ⊗
;PROG
XMVAR
10
12
14
16
0
;BLOCK
XMVAR
;$B1.DEST
22
;$B1.STAND
24
;$B1.DUMMY
26
;$B1.S
30
0
XPUSH
L20 ;force (0 10 0)
XPUSH
L21 ;moment (all zeroes)
XMAKFORCE
34 ;FORCE VARIABLE
4 ;blue arm
XJUMP
L22
L20: 0
0
41040
0
0
0
L21: 0
0
0
0
0
0
;Condition monitor checker
L2: XCMSKED
144
XCMTRIG
XGETFORCE ;
34
XCOPY ;
0 ;
XPRNTS ;JUST SAY IT
XJUMPC ;if negative,
5
L51 ;
XSTOP ;stop the arm
4 ;
L51: XCMENB ;
32 ;reenable
XJUMP
L2
;Create condition monitor
L22: XCMMAK
32
0
L2
XCMENB
32 ;enable him
;Assignment
XPUSH
L4
;$B1.STAND
XCHNGE
24
;Assignment
XPUSH
L5
;BARM
XCHNGE
14
;Assignment
XPUSH
L6
;$B1.DEST
XCHNGE
22
;MOVE
XMOVE
L7
;MOVE
XMOVE
L11
;Block end cleanup
XKVAR
22
24
26
30
0
XCMDES
32
0
XDESFORCE
34 ;FORCE VARIABLE
;END BLOCK
;END PROG
XKVAR
10
12
14
16
0
XTERMINATE
;Motion table
L7: 770
0
0
;Relative segment pointer
310
2774
L11
0
;Coefficients, gravity, inertia
42064
2474
0
0
0
0
142566
110003
42670
166002
142423
170002
141664
130770
0
0
0
0
137536
2000
37646
101000
137405
33000
41140
26676
0
0
0
0
141003
117156
41105
66644
140635
170520
141664
0
0
0
0
0
0
0
0
0
0
0
41663
47010
0
0
0
0
137536
2000
37646
101000
137405
33000
36634
163754
0
0
0
0
142566
107457
42670
165543
142423
167603
0
0
47126
110677
42444
146375
47330
70072
140151
65472
44754
142200
0
0
46073
64100
137107
173154
46015
107110
0
0
45130
123200
0
;End of motion table
;Motion table
L11: 770
0
0
;Relative segment pointer
310
2774
0
0
;Coefficients, gravity, inertia
41642
145166
0
0
0
0
42566
110003
142670
166002
42423
170002
141664
136421
0
0
0
0
37536
2000
137646
101000
37405
33000
41123
2115
0
0
0
0
41003
117156
141105
66644
40635
170520
141664
0
0
0
0
0
0
0
0
0
0
0
41663
41357
0
0
0
0
37536
2000
137646
101000
37405
33000
141705
32612
0
0
0
0
42566
107457
142670
165543
42423
167603
0
0
47132
37034
42513
44174
47332
43145
140132
152222
44754
142200
0
0
46073
64111
137107
173156
46015
107110
0
0
45130
123200
0
;End of motion table
L3: 40200
0
L4: 40200
0
0
0
0
0
0
0
0
0
140200
0
32711
7733
0
0
0
0
132711
7733
140200
0
0
0
0
0
0
0
0
0
0
0
L5: 40200
0
0
0
0
0
0
0
0
0
140200
0
0
0
0
0
0
0
0
0
140200
0
0
0
41456
24366
41543
70244
41053
127025
0
0
L6: 40200
0
0
0
0
0
0
0
0
0
140200
0
0
0
0
0
0
0
0
0
140200
0
0
0
41406
24366
41473
70244
41053
127025
0
0
;Trans pointer for motion
L10: 22
0
;⊗
;PARALLEL CODE: XSPROUT, WAITE, SIGNAL
COMMENT ⊗
XMAKEVT
20
0
XSPROUT
L1
L2
L3
0
XTERMINATE
L1: XNOOP
XWAITE
20
XNOOP
XTERMINATE
L2: XNOOP
XWAITE
20
XNOOP
XTERMINATE
L3: XNOOP
XSIGNAL
20
XSIGNAL
20
XNOOP
XTERMINATE
;⊗
;PROG, TINVRT, TTMUL
COMMENT ⊗
XPROG ;
XPUSH ;
L1
XCOPY
0
XTINVRT ;
XTTMUL
XTERMINATE
L1: 40200
0
0
0
0
0
0
0
0
0
140200
0
0
0
0
0
0
0
0
0
140200
0
0
0
41456
24366
41543
70244
41053
127025
0
0
;⊗
;ALAID
;COMMENT ⊗
COMMENT ∩ S expression:
(PR
(BL
(SVAR S1 S2)
(EVAR E1)
(WHILE 1
(EVDO E1 -)
(PRINT "GOTCHA")
)
)
)
; ∩
XPROG
XMVAR
32
34
0
XMAKEVT
30
0
L1: XWAITE
30
XPRINT
L2
XJUMP
L1
XTERMINATE
L2: ASCIE </
GOTCHA!/>
;⊗